#define TRUE			1
#define FALSE			0

#define	A	0X41
#define	B	0x42
#define	C	0x43
#define	D	0x44
#define	E	0x45
#define	F	0x46
#define	G	0x47
#define	H	0x48
#define	I	0x49

/***********************************/
#define KS_1			6
#define KS_2			12
#define KS_3			8
#define KS_4			11
#define KS_5			17
#define KS_6			13
#define KS_7			16
#define KS_8			21
#define KS_9			18
#define KS_0			22
#define KS_POINT		20
#define KS_SHAP		23
/***********************************/
#define KS_F1			5
#define KS_F2			10
#define KS_F3			15
#define KS_F4			9
#define KS_F5			14
#define KS_F6			19
/***********************************/
#define KS_DEL			25
#define KS_PAY			24
#define KS_ESC			0
#define KS_ENT			4
/***********************************/
#define KS_TOP			2
#define KS_DOWN		7
#define KS_LEFT		1
#define KS_RIGHT		3

#define P750_BEEP_PMW 0
#define P750_BEEP_PB5 1


struct gpio_config
{
	int port;
	int num;
	int data;
};

struct date
{
	short da_year;
	char da_mon;
	char da_day;
};
/*Menu***********************************************************************/
typedef void Event(void);
typedef struct tagMenu
{
	int		Count;			// 菜单项的总数
	int		Relative;		// 相对项，系统变量（用户勿改）
	int		Current;		// 当前项
	int		StartLine;		// 屏幕上的起始行
	int		PageSize;		// 每一页的行数
	int		PageCount;		// 总页数
	char	Closed;			// 当前菜单是否关闭
	char	Automatic;		// 是否由系统来管理
	char	AutoToTail;		// 是否在菜单的第一项按 UP 时自动转到最后一项
	char	AutoToHead;		// 是否在菜单的最后一项按 DOWN 时自动转到最一项
	Event	*onOK;			// 选中菜单回调函数指针
	Event	*onCancle;		// 退出菜单回调函数指针
	char **	InitItems;		// 所有菜单项的地址
	char *	Title;			// 菜单的标题
} Menu;

extern int fd_key;				//key drive
extern int fd_gpio;			//gpio drive
extern int BEEPMODE;			//蜂鸣器类型

extern int P750_init(void);
extern int P750_get_gpio_dev(void);
extern int get_ch(void);
extern int kbhit(void);
